package com.ipan.weixin.msg;

import com.ipan.weixin.msg.general.DefineMenusMsg;
import com.ipan.weixin.msg.general.EventMsg;
import com.ipan.weixin.msg.general.ImageMsg;
import com.ipan.weixin.msg.general.LinkMsg;
import com.ipan.weixin.msg.general.LocationEventMsg;
import com.ipan.weixin.msg.general.LocationMsg;
import com.ipan.weixin.msg.general.MusicMsg;
import com.ipan.weixin.msg.general.NewsMsg;
import com.ipan.weixin.msg.general.SubscribeEventMsg;
import com.ipan.weixin.msg.general.TextMsg;
import com.ipan.weixin.msg.general.VideoMsg;
import com.ipan.weixin.msg.general.VoiceMsg;
import com.ipan.weixin.msg.general.XmlMsg;


/**
 * 消息监听器
 * 
 * @author iPan
 * @version 2013-12-27
 */
public interface MessageListener {

	public XmlMsg onTextMsg(TextMsg msg);

	public XmlMsg onImageMsg(ImageMsg msg);
	
	public XmlMsg onVoiceMsg(VoiceMsg msg);
	
	public XmlMsg onVideoMsg(VideoMsg msg);
	
	public XmlMsg onLocationMsg(LocationMsg msg);
	
	public XmlMsg onLinkMsg(LinkMsg msg);
	
	public XmlMsg onMusicMsg(MusicMsg msg);
	
	public XmlMsg onNewsMsg(NewsMsg msg);

	public XmlMsg onEventMsg(EventMsg msg); // onSubscribeEventMsg、onDefineMenusMsg、onLocationEventMsg都会执行
	
	public XmlMsg onSubscribeEventMsg(SubscribeEventMsg msg);
	
	public XmlMsg onDefineMenusMsg(DefineMenusMsg msg);
	
	public XmlMsg onLocationEventMsg(LocationEventMsg msg);

//	public XmlMsg onErrorMsg(ErrorMsg msg); TODO:

}
